home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / telecomm / bbs / wwbbs26.lha / WWBBSDoors / cybmods2.lha / hacker46.lha / hacker / hacker4.6 next >
Encoding:
Text File  |  1993-12-27  |  60.0 KB  |  1,789 lines

  1. /* C-Net Hacker v4.5 Beta
  2.  
  3.    Original programming/concept by : Patrick Baker
  4.    Modifications for v4.0 by       : Bob Maple
  5.    Modifications for v4.5 by       : Joseph Barrero
  6.  
  7.    This P-File is authorized to be run on legal, LEGITIMATE C-Net AMIGA
  8.    systems ONLY.  It is not authorized to be run on Silicon Valley BBS
  9.    of Colorado.  You may modify this however you like for your own use,
  10.    but it can only be re-distributed in it's original form.
  11.  
  12.    Found a bug?  Leave EMail to 'Diamond Back' on Future World, or call
  13.                     THE FLIPSIDE (305)596-6711.
  14.  
  15. */
  16.  
  17. options results;signal on syntax;signal on error;signal on ioerr;signal on halt
  18.  
  19. save   = 'doors:Hacker/'  /*  Main path for all Hacker files  */
  20. play   = save'Players/'                /*  Where user files are stored     */
  21. misc   = save'Misc/'                   /*  BBS intro files, menus, etc..   */
  22. mess   = save'MESSAGES/'               /*  Inter-User Email                */
  23. phones = save'PHONEs/'                 /*  Where BBS numers are kept       */
  24. bnk    = save'BANK/'                   /*  People's banking accounts       */
  25. minbyte= 150000         /*  Minimum amount of memory that needs to be free */
  26.                         /*  at all times during the game                   */
  27. BEGIN:
  28. if storage() < minbyte then do;print;print 'Not enough memory to run the game safely!'
  29. print 'Either contact your sysop or if this is a multiline BBS, wait for another'
  30. print 'user to finish playing a game (if applicable) and try again.';exit;end
  31.  
  32. call open set, (misc'rxx.setup'), 'R';boom=0;do until boom=1;junk=readln(set)
  33. interpret junk;end;call close set
  34.  
  35. LOGIN:
  36. BBSIDENTIFY USER
  37. temp = result
  38. parse var temp '"'id'" "'ans
  39. name = upper(id)
  40.  
  41. if ~exists(play''name) then do
  42. print
  43. print 'Welcome 'NAME'.. You must be a new Hacker.'
  44. print
  45. print '   Enter an alias to use in the game:'
  46. prompt 20 'NORMAL' '-> ';ALIAS = UPPER(result)
  47. if ALIAS = '' | alias = '###PANIC' then call quickexit
  48.  
  49. if exists(play'TOTAL') then do;call open file, (play'TOTAL'), 'R';TOTALUSERS = readln(file);call close file;end
  50. if ~exists(play'TOTAL') then do;call open file, (play'TOTAL'), 'W';call writeln file, 0;call close file;end
  51.  
  52. if exists(play'ALIASES') then do;call open file, (play'TOTAL'), 'R'
  53. totalusers = readln(file);call close file;call open file, (play'ALIASES'), 'R'
  54. do i = 1 to TOTALUSERS;tempa = readln(file);j = readln(file)
  55. if upper(tempa) = alias then do;print;print 'That alias already exists, pick another.'
  56. call LOGIN;end;end;call close file;end
  57.  
  58. print
  59. print 'Setting up an account...'
  60.  
  61. call open file, (play'TOTAL'), 'W';TOTALUSERS = TOTALUSERS + 1;call writeln file, TOTALUSERS;call close file
  62. call open file, (mess''name), 'W';call writeln file, '0';call close file
  63. call open file, (play''NAME), 'W';call savestats;call close file
  64.  
  65. if ~exists(play'ALIASES') then do;call open file, (play'ALIASES'), 'W'
  66. call writeln file, ALIAS;call writeln file, NAME;call close file;end
  67. else do;call open file, (play'ALIASES'), 'A';call writeln file, ALIAS
  68. call writeln file, NAME;call close file;end
  69.  
  70. if exists(play'REALNAMES') then do;call open file, (play'REALNAMES'), 'A'
  71. call writeln file, NAME;call close file;end
  72.  
  73. if ~exists(play'REALNAMES') then do;call open file, (play'REALNAMES'), 'W'
  74. call writeln file, NAME;call close file;end
  75.  
  76. print 
  77. prompt 1 'YESNO' 'Do you wish to read the instructions of the game? (Y/n) : '
  78. ans=result;if ans='N' then sendfile misc'sys.docs'
  79.  
  80. END
  81. if exists(misc'winners') then do;sendfile misc''winners;prompt 20 'NORMAL' RETURN;cls;end
  82. call open file, (play'TOTAL'), 'R';TOTALUSERS = readln(file);call close file
  83. call open file, (play''NAME), 'R';call readstats;call close file
  84. bg = 0
  85. call getdate
  86. call checklplay
  87. /*if access=23 then call goon*/
  88. if totalplays < 1 then call goon
  89. GOON:
  90. if ~exists(mess''name) then do;call open gag, (mess''name), 'W'
  91. call writeln gag, '0';call close gag;end
  92. print 'Welcome back, 'name'.';print;print;print 'Checking for inter-hacker messages..'
  93. call open file, (MESS''NAME), 'R';messtotal = readln(file)
  94. if messtotal=0 then do;call close file;call gooon;end
  95. if messtotal > 0 then do
  96. print;print 'You have 'messtotal' messages.';prompt 20 'NORMAL' RETURN
  97. do u = 1 to MESSTOTAL;from=readln(file)
  98. cls;print 'Transmission #'u', From 'from':'
  99. do i = 1 to 3;line.i=readln(file);end
  100. print;print ''line.1';print 'line.2';print 'line.3;prompt 20 'NORMAL' RETURN;end
  101. print 'End of Messages...                          ';call close file;end
  102. call open file, (MESS''NAME), 'W';call writeln file, '0';call close file
  103.  
  104. GOOON:
  105. call CONVERSION
  106.  
  107. if money = 0 & savings < 100 then do
  108.    loan = random(1,250,time('s'))
  109.    print
  110.    print 'You are broke 'alias'! The HAA gives you a loan of $'loan'.'
  111.    money = money + loan;bankmoney = bankmoney - loan
  112.    prompt 20 'NORMAL' RETURN
  113. end
  114. LOTTO:
  115. if money < 2 then do;print;print 'You have no money to play the lotto.';print '';call main;end
  116. cls;print;print 'Hacker-Lotto:';print 'The hacker lottery costs $72.00 per ticket.'
  117. print 'You currently have $'money'.00 in your pocket.'
  118. print;send 'Do you wish to play? (y/N) ';getchar;tempmon=0
  119. ans = upper(result);if ans = '#' then exit
  120. if ans ~= 'Y' then do;print 'No';call checkwardial;call MAIN;end;tix=money/2
  121. if money > 198 then tix=99;if length(tix)=4 then tix=left(tix,2)
  122. if length(tix)=3 then tix=left(tix,1)
  123. print "Yes"
  124. prompt 20 'NORMAL' 'How many tickets (Maximum of 'tix')? '
  125. numtickets = upper(result)
  126. if numtickets <= 99 then do
  127.    if numtickets*2 > money then do
  128.       print 'You do not have enough money!';print
  129.       prompt 20 'NORMAL' RETURN
  130.       call MAIN
  131.    end
  132.    print;print
  133.    money = money - numtickets*2
  134.    bankmoney = bankmoney + numtickets*2
  135.    do i = 1 to numtickets
  136.       ranwin = random(1,4,time('s'))
  137.       if ranwin = 1 then do
  138.          moneywon = random(1,100,time('s'))
  139.          print 'Ticket #'left(i,2)' Winner of $'moneywon'';print
  140.          money = money + moneywon;tempmon=tempmon+moneywon
  141.          bankmoney = bankmoney - moneywon
  142.       end
  143.       if ranwin = 2 | ranwin = 3 | ranwin = 4 then do
  144.          print '#'left(i,2)' Loser!'
  145.       end
  146.    end
  147. end
  148.  
  149. print;print 'You spent $'numtickets*2'.00 on lottery tickets, and won a total of $'tempmon'.00.'
  150. temp=tempmon-(numtickets*2);print 'You made a "profit" of $'temp'.00';print
  151. prompt 20 'NORMAL' return
  152. call checkwardial
  153. call MAIN
  154.  
  155.  
  156. MAIN:
  157. if mk = '' then mk = 0;if mkused = '' then mkused = 0
  158. call nc;call conversion
  159. call open file, (play''NAME), 'W';call savestats;call close file
  160. call open file, (play''NAME), 'R';call readstats;call close file
  161. print ""
  162. prompt 20 'NORMAL' 'SYS:'MAXTURNS-MAINCOUNTER'> '
  163. ANS=upper(result);call NC
  164.  
  165. if ANS = 'LAST' then call LASTFIGHTS
  166. if ANS = 'WHO' then do;bbscommand who;print "";prompt 20 'NORMAL' return;call main;end
  167. if left(ans,3)='OLM' then do;bbscommand ans;print "";prompt 20 'NORMAL' return;call main;end
  168. if ANS = 'BANK' then call bank
  169. if left(ANS,3) = 'HAC' then do;call turns;call HACKOTHER;call main;end
  170. if ANS = 'SPY' then do;call turns;call SPY;end
  171. if ANS = 'ENDCLI' then call BEXIT
  172. if ANS = 'Q' | ans = 'QUIT' then call BEXIT
  173. if ANS = 'DIR' | ANS = '?' then do; sendfile misc'sys.maindir';print '10 files - 1 directory - 173 blocks - 88342 bytes - 'megs'MB Free';call main;end
  174. if ANS = 'HAA' then do
  175.    cls;print 'Connecting to the Hackers Association of America....'
  176.    print;print
  177.    call turns
  178.    call HAA
  179. end
  180.  
  181. if ANS = 'SCAN' then do;call turns;call scan;call main;end
  182. if (Access = 23) & (ANS = 'CHECK') then do;wd=1;call checkwardial;call main;end
  183. if ANS = 'CD DIAL' | ans = 'DIAL' then call DIAL
  184. if ANS = 'USER' then do;call USERLIST;call MAIN;end
  185. if ANS = 'TRANS' then do;call SENDMESS;call MAIN;end
  186. if ANS = 'STATS' then do;call YOURSTATS;call MAIN;end
  187. print;print 'Unknown command 'ans'.';call MAIN
  188.  
  189. LASTFIGHTS:
  190. if ~exists(play'LAST10') then do
  191.    print;print 'No fights yet..  Try fighting another user.';print
  192.    prompt 20 'NORMAL' RETURN;call MAIN
  193. end
  194. cls;print;print '  Last 10 User vs. User fight results:';print;sendfile play'last10'
  195. print "";prompt 20 'NORMAL' RETURN;call MAIN
  196.  
  197. HACKOTHER:
  198. cls;print 'Attack another user:';print
  199. if megs=0 then do;print;print 'Your hard drive is totaled!  Fix it first.';print "";prompt 20 'NORMAL' return
  200. call main;end
  201. txt='Hack';call listusers;if toget='###' then call main
  202. call open file, (play''toget),'R'
  203. call readostats;call close file;oname=toget
  204.  
  205. if OMEGS = 0 then do
  206.    print 'He is already trashed, try hacking some boards!';print
  207.    prompt 20 'NORMAL' RETURN;call MAIN
  208. end
  209.  
  210. CALL OCONVERSION2
  211.  
  212. otnm = left(otnm,20)
  213. ODRIVENAME = left(ODRIVENAME,20)
  214. Stnm = left(tnm,20)
  215. SDRIVENAME = left(DRIVENAME,20)
  216.  
  217. if olfght = ALIAS then do
  218.    sendfile misc'sys.hacklaw'
  219.    print "";prompt 20 'NORMAL' RETURN;call MAIN
  220. end
  221.  
  222. print;print ''Oalias', 'OMegs' Megs'
  223. print 'Hardware: 'ODRIVENAME'  Software: 'otnm
  224. print;print '                   --VS--';print
  225. print ''alias', 'megs' Megs'
  226. print 'Hardware: 'SDRIVENAME'  Software: 'Stnm
  227.  
  228. print;send 'Are you sure you want to fight? (y/N) '
  229. getchar;ANS = result;if ans='#' then call quickexit
  230. call NC;if ans ~= 'Y' then call MAIN
  231. print 'Yes';oldmegs = megs;othermegs = omegs
  232. call HACKHIM
  233.  
  234.  
  235. HACKHIM:
  236. YOURTEMPMEGS = MEGS
  237. cls;print;print ''OALIAS': 'OMEGS' Megs    You: 'MEGS' Megs';print
  238. print 'No viruses allowed here! This is a fight of power!'
  239. print;print '[1] Fight     [2] Run';print
  240. prompt 20 'NORMAL' '[1,2] '
  241. ANS = upper(result);call NC
  242. if ans = '' | ans='Q' then call HACKHIM
  243. if ANS = '2' then do
  244.    ranhit = random(1,10,time('s'))
  245.    if ranhit < odrtyp then do
  246.       print;print '&^!@*&%$#*^%(*^%!(*@^%$#*&%$&(^%!@)*#%(&^%$!(@^#%'
  247.       print;print 'Wow! What a blow!'
  248.       dam = random(1,omegs,time('s'));if dam > megs then dam = megs;megs = megs - dam
  249.       if megs < 0 then print;print 'You're WASTED!'
  250.       print;print ''dam' Megs were trashed on your drive!'
  251.       OMONEY = OMONEY + MONEY%2;if MONEY > 1 then MONEY = MONEY%2
  252.       If megs <= 0 then do
  253.  
  254. txt = ''ALIAS' fought 'OALIAS' on 'DATE' and LOST!'
  255. call toptensave
  256.  
  257. oxper = oxper + YOURTEMPMEGS*100
  258. if ttyp > ottyp then do
  259.    ottyp = ttyp
  260.    if ttyp > 1 then ttyp = ttyp - 1
  261.    if ttyp < 1 then ttyp = 1
  262. end
  263. if drty > odrtyp then do
  264.    odrtyp = drty
  265.    if drty > 1 then drty = drty - 1
  266.    if drty < 1 then drty = 1
  267. end
  268. if SCA > 1 then do
  269.    OSCA = OSCA + SCA;SCA = SCA%2
  270. end
  271. if TROJ > 1 then do
  272.    OTROJ = OTROJ + TROJ;TROJ = TROJ %2
  273. end
  274. if BW > 1 then do
  275.    OBW = OBW + BW;BW = BW %2
  276. end
  277. end
  278.  
  279. TOTALLOSS = TOTALLOSS + 1
  280. otwin = otwin + 1;olfght = ALIAS
  281. otmcr = otmcr+DAM;call WRITEHIM;call CONVERSION
  282. end
  283. TOTALLOSS = TOTALLOSS + 1
  284. otwin = otwin + 1
  285. if money > 1 then do
  286.    moneylost = random(1,100,time('s'))
  287.    if moneylost > money then moneylost = money
  288.    money = money - moneylost+10
  289.    OMONEY = OMONEY + MONEYLOST
  290.    print 'You just lost $'moneylost+10'!'
  291.    call WRITEHIM;print ''
  292.  end
  293. call MAIN
  294. END
  295.  
  296. if ANS = '1' then do
  297.    TOHIT = random(1,10,time('s'))
  298.    if TOHIT < ttyp+1 then do
  299.       ydam = random(1,megs,time('s'));if ydam > OMEGS then ydam = OMEGS
  300.       OMEGS = OMEGS - YDAM
  301.       print;print 'You plaster 'YDAM' megs  on his drive!'
  302.       if OMEGS <= 0 then do
  303.  
  304. txt = ''ALIAS' fought 'OALIAS' on 'DATE' and WON!'
  305. call toptensave
  306.  
  307. print;print 'He is obliterated!'
  308. xrp = xrp + othermegs*1000
  309. money = money + OMONEY%2
  310. findmoney = omoney%2
  311. omoney = omoney - OMONEY%2
  312. print;print 'You get 'othermegs*1000' experience points.'
  313. if OMONEY > 0 then print 'You find $'FINDMONEY'!'
  314. if OTROJ > 0 then print 'You find 'OTROJ' Trojans!'
  315. if OBW > 0 then print 'You find 'OBW' Byte Warriors!'
  316. if OSCA > 0 then print 'You find 'OSCA' SCAs!'
  317. send ''
  318.  
  319. if ottyp > ttyp then do
  320.    ttyp = ottyp
  321.    if ottyp > 1 then ottyp = ottyp - 1
  322.    if ottyp < 1 then ottyp = 1
  323. end
  324. if odrtyp > drty then do
  325.    drty = odrtyp
  326.    if odrtyp > 1 then odrtyp = odrtyp - 1
  327.    if odrtyp < 1 then odrtyp = 1
  328. end
  329. if OSCA >= 1 then do
  330.    SCA = OSCA + SCA
  331.    OSCA = OSCA%2
  332.    if OSCA <=1 then OSCA = 0
  333. end
  334. if OTROJ >= 1 then do
  335. TROJ = OTROJ + TROJ
  336. OTROJ = OTROJ %2
  337. if OTROJ <=1 then OTROJ = 0
  338. end
  339. if OBW >= 1 then do
  340. BW = BW + OBW
  341. OBW = OBW %2
  342. if OBW <=1 then OBW = 0
  343. end
  344. TOTALWINS = TOTALWINS + 1
  345. otloss = otloss + 1
  346. call WRITEHIM
  347. end
  348. end
  349.  
  350. if TOHIT >= ttyp+1 then do
  351.    ranmess = random(1,3,time('s'))
  352.    if ranmess = 1 then print 'You missed him!'
  353.    if ranmess = 2 then print 'He eludes you!'
  354.    if ranmess = 3 then print 'Nothing happens!'
  355. end
  356. print ''
  357. OTOHIT = random(1,10,time('s'))
  358. if OTOHIT < ottyp+1 then do
  359.    hdam = random(1,Omegs,time('s'))
  360.    if hdam > MEGS then hdam = MEGS
  361.    MEGS = MEGS - hDAM
  362.    print 'He smashes 'hDAM' megs on your drive!'
  363.  
  364.    if MEGS <= 0 then do
  365.  
  366. txt = ''ALIAS' fought 'OALIAS' on 'DATE' and LOST!'
  367. call toptensave
  368.  
  369.  send ''
  370.  ranlose = random(1,5,time('s'))
  371.  if ranlose = 1 then print 'You are TOAST!'
  372.  if ranlose = 2 then print 'He over powers you!'
  373.  if ranlose = 3 then print 'You didnt have a chance!'
  374.  if ranlose = 4 then print ALIAS's funeral services are Thursday at 2pm!'
  375.  if ranlose = 5 then print OALIAS' devastates your entire drive!'
  376.  oxper = oxper + oldmegs*1000
  377.  Omoney = Omoney + MONEY%2
  378.  money = money - MONEY%2
  379.  
  380.  if ttyp > ottyp then do
  381.     ottyp = ttyp
  382.     if ttyp > 1 then ttyp = ttyp - 1
  383.     if ttyp < 1 then ttyp = 1
  384. end
  385.  if drty > odrtyp then do
  386.     odrtyp = drty
  387.     if drty > 1 then drty = drty - 1
  388.     if drty < 1 then drty = 1
  389.  end
  390.  if SCA >= 1 then do
  391.     OSCA = OSCA + SCA
  392.     SCA = SCA%2
  393.     if SCA <=1 then SCA = 0
  394.  end
  395.  if TROJ >= 1 then do
  396.     OTROJ = OTROJ + TROJ
  397.     TROJ = TROJ %2
  398.     if TROJ <=1 then TROJ = 0
  399.  end
  400.  if BW >= 1 then do
  401.     OBW = BW + OBW
  402.     BW = BW %2
  403.     if BW <=1 then BW = 0
  404.  end
  405.     otwin = otwin + 1
  406.     TOTALLOSS = TOTALLOSS + 1
  407.     call WRITEHIM
  408.     end
  409. end
  410.  
  411. if OTOHIT >= ottyp+1 then do
  412.    ranmess = random(1,5,time('s'))
  413.    if ranmess = 1 then print 'He doesnt do anything!'
  414.    if ranmess = 2 then print 'You out witted him!'
  415.    if ranmess = 3 then print 'Nothing happens to you!'
  416.    if ranmess = 4 then print 'Your drive is safe this time!'
  417.    if ranmess = 5 then print 'Your drive is safe this time!'
  418. end
  419. prompt 20 'NORMAL' RETURN
  420. call HACKHIM
  421. end
  422.  
  423.  
  424.  
  425. WRITEHIM:
  426. olfght = ALIAS
  427. call open file, (play''ONAME),'W'
  428. call saveostats
  429. call close file
  430. LASTFIGHT = OALIAS
  431. call open file, (play''NAME), 'W'
  432. call savestats
  433. call close file
  434. print "";prompt 20 'NORMAL' RETURN;print;print;print 'Exiting Hacker combat..';print
  435. call MAIN
  436.  
  437. HAA:
  438. sendfile misc'sys.haa'
  439. print;prompt 20 'NORMAL' '  [HAA Main]: '
  440. ANS = upper(result);call NC
  441.  
  442. if ANS='Q' | ans='8' | ans='CD /' then do;print 'Disconnecting..';call MAIN;end
  443.  
  444. if ans = '1' then call fixdrive
  445.  
  446. if ans = '2' then do
  447.    if money <= 0 then do
  448.       print;print 'You need money first!!';print
  449.       prompt 20 'NORMAL' RETURN;call HAA
  450.    end
  451.    call CREDITCARDS
  452. end
  453.  
  454. if ANS = '3' then do
  455.    sendfile misc'sys.terminal'
  456.    print;print 'You are currently using 'tnm' and have $'money'.';print
  457.    prompt 20 'NORMAL' 'Terminals (S=Sell, Q=Quit)? ';ANS=upper(result);call NC
  458.    if ans = ttyp then do
  459.       print;print 'You are already using 'tnm'!'
  460.       prompt 20 'NORMAL' RETURN;call HAA
  461.    end
  462.    if ans = 'Q' | ans = '' then call HAA
  463.    if ans = 'S' then do
  464.       if ttyp=1 then do;print;print 'You have the worst term!  Selling not possible.';print;call haa;end
  465.       ans=ttyp;call termcost;print;print 'The HAA will give you $'cost/2' for your 'tnm'.'
  466.       send 'Do you still wish to sell it?  (y/N) ';getchar;ans=result
  467.       if ans ~='Y' then call haa;print 'Sold.';money=money+(cost/2);ttyp=1;call conversion;call haa
  468.    end
  469.    if ans = '1' | ans < ttyp then do
  470.       if ans = ttyp then print '';print 'You already have that!'
  471.       if ans < ttyp then print '';print 'That is a worse terminal than what you have!'
  472.       print "";prompt 20 'NORMAL' RETURN
  473.       call HAA
  474.    end
  475.  if ans > 1 & ans < 10 then do
  476.    call termcost
  477.  
  478.    if money < cost then do
  479.       print;print 'You do not have enough money!'
  480.       print ''
  481.       prompt 20 'NORMAL' RETURN
  482.       call HAA
  483.    end
  484.    money = money - cost
  485.    bankmoney = bankmoney + cost
  486.    ttyp = ans;call conversion
  487.    print;print ''tnm' bought for the price of $'cost'.';print
  488.    prompt 20 'NORMAL' RETURN
  489.  end
  490.    call HAA
  491. end
  492.  
  493. if ans = '4' then do
  494.    sendfile misc'sys.hardware'
  495.    print;print 'You are currently using a 'drivename' and have $'money'.'
  496.    print;prompt 20 'NORMAL' 'Hardware (S=Sell, Q=Quit)? '
  497.    ANS=upper(result);call NC
  498.    if ans='S' then do
  499.       if drty=1 then do;print;print 'You are using the worst backup method! Selling not possible.';print;call haa;end
  500.       ans=drty;call hardcost;print;print 'The HAA will give you $'cost/2' for your 'drivename'.'
  501.       send 'Do you still wish to sell it?  (y/N) ';getchar;ans=result
  502.       if ans ~='Y' then call main;print 'Sold.';money=money+(cost/2);drty=1;call conversion;call haa
  503.    end
  504.    if ans = drty then do
  505.       print;print 'You are already using 'drivename'!';print
  506.       prompt 20 'NORMAL' RETURN;call HAA
  507.    end
  508.    if ans = 'Q' | ans = '' then call HAA
  509.    if ans = '1' | ans < drty then do
  510.       if ans = ttyp then print;print 'You already have that!'
  511.       if ans < ttyp then print;print 'That backup is worse than what you have!'
  512.       print ''
  513.       prompt 20 'NORMAL' RETURN
  514.       call HAA
  515.    end
  516.  if ans >= 2 & ans <= 7 then do
  517.     call hardcost
  518.  end
  519.  
  520.    if money < cost then do
  521.       print
  522.       print 'You do not have enough money!';print
  523.       prompt 20 'NORMAL' RETURN;call HAA
  524.    end
  525.  
  526.    money = money - cost;bankmoney = bankmoney + cost
  527.    drty = ans;call conversion
  528.    print;print ''drivename' Backup bought for the price of $'cost'!';print
  529.    prompt 20 'NORMAL' RETURN
  530.    call HAA
  531. end
  532.  
  533. if ans = '5' then do
  534.    sendfile misc'sys.virus'
  535.    print;print 'You have $'money'.00';print
  536.    prompt 20 'NORMAL' 'Viruses (Q=Quit)? ';ANS=upper(result);call NC
  537.    if ans = 'Q' | ans = '' then call HAA
  538.    if ans = 1 then cost = 100;if ans = 2 then cost = 1000
  539.    if ans = 3 then cost = 2500
  540.    if money < cost then do
  541.       print;print 'You do not have enough money'
  542.       print;prompt 20 'NORMAL' RETURN;call HAA
  543.    end
  544.    if ans = 1 then virusbought = 'Byte Warrior'
  545.    if ans = 2 then virusbought = 'SCA';if ans = 3 then virusbought = 'Trojan'
  546.  
  547.    print;prompt 20 'NORMAL' 'Buy how many? '
  548.    numbought = upper(result);call NC
  549.    if numbought = '' | numbought ~< 99 then call HAA
  550.  
  551.    if money < numbought * cost then do
  552.       print;print 'You do not have enough money!';print
  553.       prompt 20 'NORMAL' RETURN;call HAA
  554.    end
  555.    totalcost = numbought * cost
  556.    if numbought > 1 then print;print ''numbought' 'virusbought's bought for $'totalcost'.'
  557.  
  558.    if ans = 1 then BW = BW + NUMBOUGHT
  559.    if ans = 2 then SCA = SCA + NUMBOUGHT
  560.    if ans = 3 then TROJ = TROJ + NUMBOUGHT
  561.    money = money - totalcost
  562.    bankmoney = bankmoney + totalcost
  563.    print ""
  564.    prompt 20 'NORMAL' RETURN;call HAA
  565. end
  566.  
  567. if ans = '6' then do
  568.    cls;print;print 'Gambling is a bad habit!  You have a 50% chance of losing!';print
  569.    print '  Gamble how much money ( to quit)?'
  570.    prompt 20 'NORMAL' '> ';ANS=upper(result);call NC
  571.    if ANS = 0 | ANS='Q' | ANS='' then call HAA
  572.    if ANS > MONEY then do
  573.        print 'Not enough money..';print
  574.        prompt 20 'NORMAL' RETURN;call HAA
  575.     end
  576.     RANWIN = RANDOM(1,2,time('s'))
  577.       if RANWIN = 1 then do
  578.          print ''
  579.          ranmess = random(1,3,time('s'))
  580.          if ranmess = 1 then print 'You are a loser!'
  581.          if ranmess = 2 then print 'What a waste of money!'
  582.          if ranmess = 3 then print 'You would do lousy in Vegas!'
  583.          MONEY = MONEY - ANS
  584.          bankmoney = bankmoney + ans
  585.          print ''
  586.          prompt 20 'NORMAL' RETURN;call HAA
  587.       end
  588.       print ''
  589.       if ANS <= 1000 then do
  590.          MONEY = MONEY + (ANS * 2)
  591.          bankmoney = bankmoney - ans*2
  592.          print 'You won $'ANS*2'  What luck!'
  593.       end
  594.       if ANS > 1000 then do
  595.          print 'You won $'ANS*2'! Outstanding!'
  596.          MONEY = MONEY + (ANS * 2)
  597.          bankmoney = bankmoney - ans*2
  598.       end
  599.       print ''
  600.       prompt 20 'NORMAL' RETURN;call HAA
  601.    END
  602.  if ans = '7' then do;call wardial;call haa;end
  603.  if ans = '?' then do
  604.     call HAA
  605.  end
  606.  
  607. FIXDRIVE:
  608. if ans='1' then do;tofixcost = level*5;maxmegs = level * 10
  609. canfix = maxmegs - megs;if megs = maxmegs then do
  610.   print 'Your hard drive isn''t damaged.'
  611.   print ''
  612.   prompt 20 'NORMAL' RETURN;call HAA
  613. end
  614. if MONEY <=0 & savings < 100 then do
  615.   print;print;print 'You are out of money!  You are given $100 from the HAA.'
  616.   money = money + 100;bankmoney = bankmoney - 100
  617. end
  618. print;print;print 'You have 'canfix' megabytes of damage.'
  619. print 'Repair costs run $'tofixcost' per meg to fix.'
  620. print;prompt 20 'NORMAL' 'Fix how many? '
  621. tofix = upper(result);call NC
  622. if tofix > maxmegs | tofix > canfix then do
  623.   print;print 'You don''t even have that big of a hard drive.';print
  624.   prompt 20 'NORMAL' RETURN;call HAA
  625. end
  626. if tofix = '' then call HAA
  627. if tofix = '###PANIC' then call QUICKEXIT
  628. if money < tofixcost*tofix then do
  629.    print;print 'Not enough money';print
  630.    prompt 20 'NORMAL' RETURN;call HAA
  631. end
  632. megs = megs + tofix;money = money - tofixcost*tofix
  633. bankmoney = bankmoney + tofixcost*tofix
  634. print;print ''tofix' megs repaired at a total cost of $'tofixcost*tofix'.'
  635. prompt 20 'NORMAL' RETURN;call HAA
  636. END
  637. call HAA
  638.  
  639. CREDITCARDS:
  640. if thecard > 10 then do;print;print 'You''ve hacked enough cards today.';call haa;end
  641. print 'Credit Cards';cls;print 'Hacking credit cards is dangerous but if you succeed you can get a large'
  642. print 'sum of money.  There are several different cards which you can hack.';print
  643. print '[H]ack a card     [L]ist Credit Cards to hack';print '[Q]uit to HAA'
  644. print;prompt 20 'NORMAL' '[Cards> '
  645. ans = upper(result)
  646. call NC
  647. if ans = 'Q' | ans='' then call HAA
  648. if ans = 'H' then do
  649.    print;print '  Hack which card [1-12; 12 being most difficult]'
  650.    print;prompt 20 'NORMAL' '> ';card = upper(result)
  651.    if card <= 0 | card > 12 then do
  652.       print;print 'That card does not exist...';print
  653.       prompt 20 'NORMAL' RETURN
  654.       call CREDITCARDS
  655.    end
  656.    call open file, (misc'rxx.cardconvrt'), 'R';do i = 1 to 15;temp=readln(file);interpret temp;end;call close file
  657.    print;send 'Hacking 'CCARD'... Please hold..';thecard=thecard+1
  658.    cchack = random(1,14,time('s'))
  659.    if cchack < CARD then do
  660.       print 'You are CAUGHT by the FEDS!'
  661.       ranpen = random(1,5,time('s'))
  662.       if ranpen = 1 | ranpen = 2 then do
  663.          print 'You get off easy with a slap on the wrists!';print
  664.          prompt 20 'NORMAL' RETURN;call HAA
  665.       end
  666.       if ranpen = 3 then do
  667.          moneylos = maxwin
  668.          if moneylos > money then moneylos = money
  669.          print;print 'You are caught by the FEDS! They penalize you $'moneylos'!!'
  670.          money = money - moneylos;bankmoney = bankmoney + moneylos
  671.          print;prompt 20 'NORMAL' RETURN;call HAA
  672.       end
  673.       if ranpen = 4 then do
  674.        if xrp > 30000 then do
  675.          print 'The HAA is rather embarassed, they penalize you'
  676.          print '30000 experience points.'
  677.          xrp = xrp - 30000
  678.          print;print 'They formatted your hard drive as well.';print
  679.          megs = 0;prompt 20 'NORMAL' RETURN;call HAA
  680.        end
  681.        xrp = 0
  682.        print 'The HAA is rather embarassed, you are penalized to level 1.'
  683.        print 'Sorry!  It will teach you for the future!';print
  684.        xrp = 0;megs = 0;prompt 20 'NORMAL' RETURN;call HAA
  685.       end
  686.       if ranpen = 5 then do
  687.          if money < maxwin then maxwin = money
  688.          print 'The FBI catches you and fines you $'MAXWIN' for your crimes.';print
  689.          money = money - maxwin;bankmoney = bankmoney + maxwin
  690.          prompt 20 'NORMAL' RETURN;call HAA
  691.       end
  692.    end
  693.    print 'You got away with $'maxwin'!';print
  694.    money = money + maxwin;bankmoney = bankmoney - maxwin
  695.    prompt 20 'NORMAL' RETURN;call HAA
  696. end
  697.  
  698. if ans = 'L' then do
  699.    sendfile misc'sys.CreditCards'
  700.    prompt 20 'NORMAL' RETURN;call CREDITCARDS
  701. end
  702. call HAA
  703.  
  704. DIAL:
  705.  sendfile misc'sys.dialer'
  706.  print;prompt 20 'NORMAL' '[SYS:Terms ('maxturns-maincounter') > '
  707.  ANS = upper(result);call NC
  708.  if ANS = 'TERM' then do;call turns;call DIALOUT;end
  709.  if ANS = 'DIR' then do
  710.     call DIAL
  711.  end
  712.  if ANS = 'ENDCLI' then call BEXIT
  713.  if ANS = 'Q' | ans = 'QUIT' then call BEXIT
  714.  if (Access = 23) & (ANS = 'ADD') then call AddNumbers
  715.  if ANS = 'CD ROOT' | ans = 'ROOT' | ans = 'CD /' then call MAIN
  716.  if ANS = 'NUMBERS' then do
  717.     call NUMBERLIST;call DIAL
  718.  end
  719.  print;print 'Unknown command.';print
  720. call DIAL;call BEXIT
  721.  
  722. DIALOUT:
  723.  if MEGS <= 0 then do
  724.     print;print 'You do not have enough storage to do this.  Contact the'
  725.     print 'Hackers Association of America and repair your hard drive.';print
  726.     prompt 20 'NORMAL' RETURN;call DIAL
  727.  end
  728.  CALLINGFLAG = 0;FOUNDFLAG = 0
  729.  print '(SYS:Terms/> [CLI 2]';print '(SYS:Terms/> '
  730.  print tnm' v 1.0 All Rights Reserved'
  731.  WW=0;HAH=0
  732.  print 'Initializing Modem...';print;print 'AT&C1H0E0X1S2=1M1';print;print
  733.  prompt 20 'NORMAL' 'ATDT *70,'
  734.  TODIAL = UPPER(RESULT)
  735.  if todial='' then call dial
  736.  if exists(PHONES'LOCAL') then do
  737.     call open file, (PHONES'LOCAL'), 'R'
  738.          telnum = readln(file)
  739.          do i = 1 to telnum
  740.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  741.             locmg.i = readln(file);locwin.i = readln(file)
  742.             loclos.i = readln(file)
  743.             if LOCALNUM.i = TODIAL then do
  744.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  745.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i;FOUNDLOOP = I
  746.                FOUNDFLAG = 1;CALLINGFLAG = 1
  747.             end
  748.          end
  749.     call close file
  750.  
  751.     if foundflag = 0 then do
  752.     call open file, (PHONES'HAA'), 'R'
  753.          telnum = readln(file)
  754.          do i = 1 to telnum
  755.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  756.             locmg.i = readln(file);locwin.i = readln(file)
  757.             loclos.i = readln(file)
  758.             if LOCALNUM.i = TODIAL then do
  759.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  760.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  761.                FOUNDLOOP = I;WW=1;HAH=1;FOUNDFLAG = 1;CALLINGFLAG = 5
  762.             end
  763.          end
  764.     call close file
  765.     end
  766.  
  767.     if foundflag = 0 then do
  768.     call open file, (PHONES'WAR'), 'R'
  769.          telnum = readln(file)
  770.          do i = 1 to telnum
  771.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  772.             locmg.i = readln(file);locwin.i = readln(file)
  773.             loclos.i = readln(file)
  774.             if LOCALNUM.i = TODIAL then do
  775.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  776.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  777.                FOUNDLOOP = I;WW=1;FOUNDFLAG = 1;CALLINGFLAG = 4
  778.             end
  779.          end
  780.     call close file
  781.     end
  782.  
  783.     if foundflag = 0 then do
  784.     call open file, (PHONES'MAINFRAMES'), 'R'
  785.          telnum = readln(file)
  786.          do i = 1 to telnum
  787.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  788.             locmg.i = readln(file);locwin.i = readln(file)
  789.             loclos.i = readln(file)
  790.             if LOCALNUM.i = TODIAL then do
  791.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  792.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  793.                FOUNDLOOP = I;FOUNDFLAG = 1;CALLINGFLAG = 2
  794.             end
  795.          end
  796.     call close file
  797.     end
  798.  
  799.     if foundflag = 0 then do
  800.     call open file, (PHONES'GOV'), 'R'
  801.          telnum = readln(file)
  802.          do i = 1 to telnum
  803.             locnm.i = readln(file);LOCALNUM.i = readln(file);locmg.i = readln(file)
  804.             locwin.i = readln(file);loclos.i = readln(file)
  805.             if LOCALNUM.i = TODIAL then do
  806.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  807.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  808.                FOUNDFLAG = 1;CALLINGFLAG = 3;FOUNDLOOP = I
  809.             end
  810.          end
  811.     call close file
  812.     end
  813.     if FOUNDFLAG = 0 then do
  814.        print;print 'That number is not listed!  Try typing ''Numbers'' for a listing'
  815.        print 'of possible numbers to dial.';print;maincounter=maincounter-1
  816.        prompt 20 'NORMAL' RETURN;call DIAL
  817.     end
  818.     if fndmeg > 999 then do;print;print;print 'BBS Over 999 Megs! Error..';call dial;end
  819.     if lastfight=fndnm then do;print;print 'You already hacked that BBS.  Try a diferent one.';print;call dial;end
  820.     print;prompt 20 'NORMAL' 'RETURN
  821.     cls;print 'Dialing..'
  822.     print;print 'ATDT *70,'fndnum
  823.     OTHERMEGS = fndmeg
  824.     print '';gaga=random(1,10,time(s));if gaga='1' | gaga = '2' then do;print;print 'BUSY';print;call dial;end
  825.     if gaga='9' | gaga='10' then do;print;print 'NO CARRIER';print;call dial;end
  826.     cls
  827.     if ttyp <= 2 then print 'CONNECT 300';print
  828.     if ttyp >= 3 & ttyp <= 4 then print 'CONNECT 1200';print
  829.     if ttyp >= 5 & ttyp <= 6 then print 'CONNECT 2400';print
  830.     if ttyp >= 7 & ttyp <= 8 then print 'CONNECT 9600';print
  831.     if ttyp >= 9 & ttyp <= 15 then print 'CONNECT 19200';print
  832.  
  833.   if (CALLINGFLAG = 1) | (Callingflag=4) | (CallingFlag=5) then do
  834.     if exists(misc||fndnm) then do;sendfile misc||fndnm;end;else sendfile misc'sys.Generic'
  835.   end
  836.  
  837.   if CALLINGFLAG = 2 then do
  838.      print 'VAX VMS MAINFRAME V5.12';print;print 'Licensed to 'fndnm
  839.      print;print 'Local>_';print;print
  840.   end
  841.  
  842.   if CALLINGFLAG = 3 then do
  843.      print fndnm' computer'
  844.      print 'This is a Goverment restricted area.  If you are not authorized log off at'
  845.      print 'once!  Federal law prohibits any hacking or piracy anywhere!';print;print
  846.      print 'To login, enter information using this format:'
  847.      print ' [USERNAME] / [PASSWORD#1] / [PASSWORD#2] / [USERID#]';print;print '@>'
  848.   end
  849.  
  850.      print '  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
  851.      print '  ³       Now is your chance!  Should you hack or run?                ³'
  852.      print '  ³                                                                   ³'
  853.      print '  ³             [H]ack                                                ³'
  854.      print '  ³             [R]un                                                 ³'
  855.      print '  ³                                                                   ³'
  856.      print '  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ';print
  857.      send 'Choice? '
  858.      getchar;ANS = result
  859.      call NC;if ANS = 'H' then do
  860.         print 'Hack';call FIGHTINIT
  861.      end
  862.      print;print;print '+++';print 'NO CARRIER';print
  863.      call DIAL
  864.  
  865. FIGHTINIT:
  866.    TFM = left(fndmeg,5);TFN = left(fndnm,20);TYM = left(MEGS,4)
  867.    TBW = left(BW,5);TTR = left(TROJ,5);TSC = left(SCA,5);TMK = left(MK,5)
  868.    cls;print 'You are currently using 'tnm' and use 'DRIVENAME' backup.';print
  869.    print ' His megs: 'TFM'   Name: 'TFN
  870.    print 'Your megs: 'tym'';print;flag=1
  871.    if TROJ>0 then do;txt=left('[3] Trojans:       'ttr,51);send txt;flag=flag+1;end
  872.    if SCA>0 then do;txt=left('[4] SCAs:          'TSC,51);if flag=2 then do;print txt;flag=1;end;else do;send txt;flag=flag+1;end;end
  873.    if BW>0 then do;txt=left('[5] Byte Warriors: 'tbw,51);if flag=2 then do;print txt;flag=1;end;else do;send txt;flag=flag+1;end;end
  874.    if MK>0 then print left('[6] Memory Killers:'TMK,51)
  875.    print;print;prompt 20 'NORMAL' '   1=Line Noise,  2=Normal Hack, Q=Run  or  enter a Virus number.';print '-> '
  876.    ANS = upper(RESULT)
  877.    if ANS = '?' then do
  878.       call FIGHTINIT
  879.    end
  880.    if ANS = 'Q' | ans = 'D' | ans = '' then call TRYDISC
  881.    if ans = '1' then call HACKEM
  882.    if ans = '2' then call HACKEM
  883.    if ans = '3' then do
  884.       if TROJ <=0 then do
  885.          print 'You have no Trojans!';call FIGHTINIT
  886.       end
  887.       TROJUSED = TROJUSED + 1;TROJ = TROJ - 1;call HACKEM
  888.    end
  889.    if ans = '4' then do
  890.       if SCA <= 0 then do
  891.          print 'You have no SCA Viruses!';call FIGHTINIT
  892.       end
  893.       SCAUSED = SCAUSED + 1;SCA = SCA - 1
  894.       call HACKEM
  895.    end
  896.    if ans = '5' then do
  897.       if BW <= 0 then do
  898.          print 'You have no Byte Warriors!'
  899.          call FIGHTINIT
  900.       end
  901.       BWUSED = BWUSED + 1;BW = BW - 1
  902.       call HACKEM
  903.    end
  904.    if ans = '6' then do
  905.       if MK <= 0 then do
  906.          print 'You have no Memory Killers!'
  907.          call FIGHTINIT
  908.       end
  909.       MKUSED = MKUSED + 1;MK = MK - 1
  910.       call HACKEM
  911.    end
  912.  
  913.  
  914.    if ans = '9' then do
  915.       if xrp > 3000000 then do
  916.        print 'President of the HAA automatic termination.....'
  917.        print 'That computer is totally destroyed, 'ALIAS'!'
  918.        winflag = 0;fndmeg = 0;call WRITEBBS
  919.       end
  920.       print 'Security breach!'
  921.    end
  922.  
  923.    call TRYDISC
  924.  
  925.  
  926. HACKEM:
  927.    print;call rndc
  928.    if ANS = 1 then send '&^#@G!$KG*&%!@#($&^Yµ¡¤þ¾¼þ«·¾½¼¢tiyuTIYT^*!%#@$  '
  929.    if ANS = 2 then send 'You try to hack at his computer..'
  930.    if ANS = 3 then send 'You try to upload a Trojan..'
  931.    if ANS = 4 then send 'You try to upload an SCA..'
  932.    if ANS = 5 then send 'You try to upload a Byte Warrior..'
  933.    if ANS = 6 then send 'You try to upload a Memory Killer..'
  934.    call rndc
  935.    if ANS = 1 then THRAN = random(1,2,time('s'))
  936.    if ANS = 2 then THRAN = random(1,3,time('s'))
  937.    if ANS = 3 then THRAN = random(1,ttyp,time('s'))
  938.    if ANS = 4 then THRAN = random(1,ttyp,time('s'))
  939.    if ANS = 5 then THRAN = random(1,ttyp,time('s'))
  940.    if ANS = 6 then THRAN = random(1,ttyp,time('s'))
  941.  
  942.    if THRAN <= ttyp then do
  943.       call RANDOMHITMESS
  944.       if ANS = 1 then THdam = random(1,10,time('s'))
  945.       if ANS = 2 then THdam = random(1,15,time('s'))
  946.       if ANS = 3 then do
  947.          THdam = random(1,100,time('s'))
  948.          print 'The Trojan succeeds!'
  949.       end
  950.       if ANS = 4 then do
  951.          THdam = random(1,75,time('s'))
  952.          print 'The SCA messes him up!'
  953.       end
  954.       if ANS = 5 then do
  955.          THdam = random(1,50,time('s'))
  956.          print 'Byte Warrior city on his end!'
  957.       end
  958.       if ANS = 6 then do
  959.          THdam = random(100,200,time('s'))
  960.          print 'The memory killer plasters his drive!'
  961.       end
  962.  
  963.       if THDAM > fndmeg then THDAM = fndmeg
  964.       print thdam' megs of his drive are jelly!'
  965.       fndmeg = fndmeg - THdam
  966.       if fndmeg <= 0 then do
  967.          winflag = 0
  968.          call WRITEBBS
  969.       end
  970.       totmgcr = totmgcr + THDAM
  971.       print
  972.    end
  973.  
  974.    if THRAN > ttyp then do
  975.       if ANS = 1 | ANS = 2 then print 'You fail!'
  976.       if ANS = 3 then do
  977.       print 'The Trojan fails!'
  978.       end
  979.       if ANS = 4 then do
  980.       print 'The SCA fails!'
  981.       end
  982.       if ANS = 5 then do
  983.       print 'The Byte Warrior does not succeed!'
  984.       end
  985.       if ANS = 6 then do
  986.       print 'The Memory Killer does not work!'
  987.       end
  988.    end
  989. print;call HISTURN
  990. call rndc;call HISCOMBAT
  991.  
  992. HISCOMBAT:
  993. if HEHIT = 0 then do
  994.    print 'He doesnt do anything!'
  995.    call FIGHTINIT
  996. end
  997. hisdam = random(1,fndmeg,time('s'))
  998. if hisdam > megs then hisdam = megs
  999. print 'He trashes 'hisdam' megs on your computer!'
  1000. megs = megs - hisdam;megslost = megslost + hisdam
  1001. if megs <= 0 then do
  1002.    winflag = 1;call WRITEBBS
  1003. end
  1004. call FIGHTINIT
  1005.  
  1006.  
  1007. TRYDISC:
  1008. print;print 'You try to disconnect...';print
  1009. HIT = random(1,2,time('s'))
  1010. if HIT = 1 then do
  1011.    print '+++';print 'NO CARRIER'
  1012.    call DIAL
  1013. end
  1014. print 'You fail!';print
  1015. DAM = random(1,fndmeg,time('s'))
  1016. oldmegs = megs
  1017. megs = megs - dam
  1018. if megs < 0 then megs = 0
  1019. if megs = 0 then do
  1020.    print 'You are trashed TOTALLY!';print
  1021.    megslost = megslost + oldmegs
  1022. end
  1023. if megs > 0 then do
  1024.    print 'He did 'DAM' megs of damage!';print
  1025.    megslost = megslost + dam
  1026. end
  1027. prompt 20 'NORMAL' RETURN;totalloss = totalloss + 1
  1028. WINFLAG = 1;call WRITEBBS
  1029.  
  1030.  
  1031. WRITEBBS:
  1032. LASTFIGHT = fndnm
  1033. if winflag = 0 then do
  1034.    extrabonus = random(1,3,time('s'))
  1035.    if extrabonus = 1 then do
  1036.       exbtype = random(1,50,time('s'))
  1037.       exbon = exbtype * 1000
  1038.       print 'You get a special extra bonus of $'ExBon'!'
  1039.       money = money + exbon
  1040.       bankmoney = bankmoney - exbon
  1041.    end
  1042.    moneyfound = random(1,othermegs,time('s'))
  1043.    if othermegs > 500 then moneyfound = moneyfound * 2
  1044.    findvir = random(1,2,time('s'))
  1045.    vir = 'no';numvir = ''
  1046.    if findvir = 1 | findvir = 2 then do
  1047.       numvir = random(1,5,time('s'))
  1048.       virtyp = random(1,4,time('s'))
  1049.       if virtyp = 1 then do
  1050.          bw = bw + numvir;vir = 'Byte Warrior'
  1051.       end
  1052.       if virtyp = 2 then do
  1053.          troj = troj + numvir;vir = 'Trojan'
  1054.       end
  1055.       if virtyp = 3 then do
  1056.          sca = sca + numvir;vir = 'SCA'
  1057.       end
  1058.       if virtyp = 4  then do
  1059.          numvir = 1;mk = mk + 1;vir = 'Memory Killer'
  1060.       end
  1061.    end
  1062.    TOTALwins = TOTALwins + 1
  1063.    if WW=1 then xbns = othermegs*200
  1064.    else xbns = othermegs*100
  1065.    xrp = xrp + xbns
  1066.    money = money + moneyfound;bankmoney = bankmoney - moneyfound
  1067.    print;print 'The HAA rewards you with 'xbns' experience points and a cash'
  1068.    print 'bonus of $'moneyfound'.'
  1069.    print;print 'You also find 'numvir' 'vir' virus(s).'
  1070. end
  1071. if winflag = 1 then do
  1072.    TOTALLOSS = TOTALLOSS + 1;print;print 'You lost!'
  1073. end
  1074. print;prompt 20 'NORMAL' RETURN
  1075.  
  1076. if CALLINGFLAG = 1 then call open file, (PHONES'LOCAL'), 'R'
  1077. if CALLINGFLAG = 2 then call open file, (PHONES'MAINFRAMES'), 'R'
  1078. if CALLINGFLAG = 3 then call open file, (PHONES'GOV'), 'R'
  1079. if CALLINGFLAG = 4 then call open file, (PHONES'WAR'), 'R'
  1080. if CALLINGFLAG = 5 then call open file, (PHONES'HAA'), 'R'
  1081.       telnum = readln(file)
  1082.       do i = 1 to telnum
  1083.          locnm.i = readln(file);LOCALNUM.i = readln(file)
  1084.          locmg.i = readln(file);locwin.i = readln(file)
  1085.          loclos.i = readln(file)
  1086.       end
  1087. call close file
  1088. locnm.FOUNDLOOP = fndnm;LOCALNUM.FOUNDLOOP = fndnum
  1089. locmg.FOUNDLOOP = OTHERMEGS
  1090. if WINFLAG = 1 then locwin.FOUNDLOOP = locwin.FOUNDLOOP + 1
  1091. if WINFLAG = 0 then loclos.FOUNDLOOP = loclos.FOUNDLOOP + 1
  1092. if CALLINGFLAG = 1 then call open file, (PHONES'LOCAL'), 'R'
  1093. if CALLINGFLAG = 2 then call open file, (PHONES'MAINFRAMES'), 'R'
  1094. if CALLINGFLAG = 3 then call open file, (PHONES'GOV'), 'R'
  1095. if CALLINGFLAG = 4 then call open file, (PHONES'WAR'), 'R'
  1096. if CALLINGFLAG = 5 then call open file, (PHONES'HAA'), 'R'
  1097.      call writeln file, TELNUM
  1098.      do i = 1 to telnum
  1099.         call writeln file, locnm.i;call writeln file, LOCALNUM.i
  1100.         call writeln file, locmg.i;call writeln file, locwin.i
  1101.         call writeln file, loclos.i
  1102.      end
  1103. call close file
  1104. if WINFLAG=0 and HAH=1 then call wingame
  1105. call DIAL
  1106.  
  1107. HISTURN:
  1108. if OTHERMEGS < 50 then do
  1109.    HHRAN = random(1,5,time('s'))
  1110. end
  1111. if OTHERMEGS < 100 then do
  1112.    HHRAN = random(1,4,time('s'))
  1113. end
  1114. if OTHERMEGS < 150 then do
  1115.    HHRAN = random(1,3,time('s'))
  1116. end
  1117. if OTHERMEGS < 500 then do
  1118.    HHRAN = random(1,2,time('s'))
  1119. end
  1120. if OTHERMEGS < 1000 then do
  1121.    HHRAN = random(1,1,time('s'))
  1122. end
  1123. if hhran = 1 then HEHIT = 1
  1124. if hhran > 1 then HEHIT = 0
  1125. RETURN
  1126.  
  1127. RANDOMHITMESS:
  1128. RANMESS = random(1,5,time('s'))
  1129.   if RANMESS = 1 then do
  1130.      print 'You got him!'
  1131.   end
  1132.   if RANMESS = 2 then do
  1133.      print 'You nailed him!'
  1134.   end
  1135.   if RANMESS = 3 then do
  1136.      print 'You fried him!'
  1137.   end
  1138.   if RANMESS = 4 then do
  1139.      print 'He is french toast on that round!'
  1140.   end
  1141.   if RANMESS = 5 then do
  1142.      print 'You can smell burnt chips thru the telephone lines!'
  1143.   end
  1144. RETURN
  1145.  
  1146. NUMBERLIST:
  1147. cls;print;print 'Listing of:';print
  1148. print 'A. Local Boards              Easy';print 'B. Mainframes                Moderate';print 'C. Government Computers      Hard';print
  1149. send '?] '
  1150. getchar;ANS = RESULT;call nc
  1151. if ANS='A' | ans='' then do
  1152.    print 'Local'
  1153.    if ~exists(phones'LOCAL') then do
  1154.       print 'There is not a local telephone book. Tell the SysOp!';print
  1155.       prompt 20 'NORMAL' RETURN
  1156.       call DIAL
  1157.    end
  1158.    call open file, (PHONES'LOCAL'), 'R'
  1159.         telnum = readln(file)
  1160.         do i = 1 to telnum
  1161.            locnm.i = readln(file);LOCALNUM.i = readln(file);locmg.i = readln(file)
  1162.            locwin.i = readln(file);loclos.i = readln(FILE)
  1163.         end
  1164.    call close file
  1165.    cls;print 'Megs      Number         WINS      LOSS      BBS Name '
  1166.    print ' ----      ------         ----      ----      --------'
  1167.    phonecount = 0
  1168.    do i = 1 to telnum
  1169.       phonecount = phonecount + 1
  1170.       lnum = left(LOCALNUM.i,15);lmeg = left(locmg.i,10)
  1171.       lnam = left(locnm.i,25);lwin = left(locwin.i,10)
  1172.       lloss = left(loclos.i,10)
  1173.       print ' 'lmeg''lnum''lwin''lloss''lnam
  1174.       if phonecount > 20 then do
  1175.          prompt 20 'NORMAL' RETURN;phonecount = 0
  1176.          print CLS
  1177.       end
  1178.    end
  1179.    print;print 'End of Local BBS List.';print
  1180.    prompt 20 'NORMAL' RETURN;call DIAL
  1181. END
  1182.  
  1183.  if ANS = 'B' then do
  1184.     print 'Mainframes'
  1185.     if ~exists(phones'MAINFRAMES') then do
  1186.        print 'There is not a Mainframe telephone book. Tell the SysOp!';print
  1187.        prompt 20 'NORMAL' RETURN;call DIAL
  1188.     end
  1189.     call open file, (PHONES'MAINFRAMES'), 'R'
  1190.          telnum = readln(file)
  1191.          do i = 1 to telnum
  1192.             MAINFNAME.i = readln(file);MAINFNUM.i = readln(file)
  1193.             MAINFMEGS.i = readln(file);MAINFWINS.i = readln(file)
  1194.             MAINFLOSS.i = readln(FILE)
  1195.          end
  1196.     call close file
  1197.     print;print 'Megs      Number         WINS      LOSS      Mainframe'
  1198.     print '----      ------         ----      ----      ---------'
  1199.     phonecount = 0
  1200.     do i = 1 to telnum
  1201.        phonecount = phonecount + 1
  1202.        mnum = left(MAINFNUM.i,15);mmeg = left(MAINFMEGS.i,10)
  1203.        mnam = left(MAINFNAME.i,25);mwin = left(MAINFWINS.i,10)
  1204.        mloss = left(MAINFLOSS.i,10)
  1205.        print mmeg''mnum''mwin''mloss''mnam
  1206.        if phonecount > 20 then do
  1207.           prompt 20 'NORMAL' RETURN;phonecount = 0
  1208.           print CLS
  1209.        end
  1210.     end
  1211.     print;print 'End of MainFrame List.';print
  1212.     prompt 20 'NORMAL' RETURN;call DIAL
  1213.  END
  1214.  
  1215.  if ANS = 'C' then do
  1216.     print 'Government'
  1217.     if ~exists(phones'GOV') then do
  1218.        print 'There is not a Goverment telephone book. Tell the SysOp!';print
  1219.        prompt 20 'NORMAL' RETURN;call DIAL
  1220.     end
  1221.     call open file, (PHONES'GOV'), 'R'
  1222.          telnum = readln(file)
  1223.          do i = 1 to telnum
  1224.             GOVNAME.i = readln(file);GOVNUM.i = readln(file)
  1225.             GOVMEGS.i = readln(file);GOVWINS.i = readln(file)
  1226.             GOVLOSS.i = readln(FILE)
  1227.          end
  1228.     call close file
  1229.     print;print 'Megs      Number         WINS      LOSS      Government Computer'
  1230.     print '----      ------         ----      ----      -------------------'
  1231.     phonecount = 0
  1232.     do i = 1 to telnum
  1233.        phonecount = phonecount + 1
  1234.        gnum = left(GOVNUM.i,15);gmeg = left(GOVMEGS.i,10)
  1235.        gnam = left(GOVNAME.i,25);gwin = left(GOVWINS.i,10)
  1236.        gloss = left(GOVLOSS.i,10)
  1237.        print gmeg''gnum''gwin''gloss''gnam
  1238.        if phonecount > 20 then do
  1239.           prompt 20 'NORMAL' RETURN;phonecount = 0;print CLS
  1240.        end
  1241.     end
  1242.     print;print 'End of Goverment  List.';print
  1243.     prompt 20 'NORMAL' RETURN;call DIAL
  1244.  END
  1245. print 'What?'
  1246. RETURN
  1247.  
  1248.  
  1249. CONVERSION:
  1250. call open file, (misc'rxx.levconvert'), 'R';boom=0;do until boom=1
  1251. temp=readln(file);interpret temp;end;call close file
  1252. RETURN
  1253.  
  1254. OCONVERSION:
  1255. call open file, (misc'rxx.oconvert'), 'R';boom=0;do until boom=1
  1256. temp=readln(file);interpret temp;end;call close file
  1257. RETURN
  1258.  
  1259. OCONVERSION2:
  1260. call open file, (misc'rxx.oconvert2'), 'R';boom=0;do until boom=1
  1261. temp=readln(file);interpret temp;end;call close file
  1262. RETURN
  1263.  
  1264. MENU:
  1265. call open file, (misc'rxx.maindir'), 'R';boom=0;do until boom=1;fart=readln(file)
  1266. interpret fart;end;call close file;return
  1267.  
  1268. SENDMESS:
  1269. cls;print 'Send a user a message:';print
  1270. txt='Send a message to';call listusers;if toget='###' then call main
  1271. print;print 'Please enter up to 3 lines of transmissions:'
  1272. print 'Hit RETURN(s) when your are done sending your message.';print
  1273. print 'This is your margin:';print
  1274. print ':----:----:----:----:----:----:----:----:----:----:----:----:----:----:----:'
  1275. do i = 1 to 3
  1276.    call rndc
  1277.    prompt 20 'NORMAL' '';ans=result
  1278.    line.i=left(ans,77)
  1279. end
  1280. print;send 'Send the above message? (y/N)? '
  1281. getchar;ans = result;call nc
  1282. if ans ~= 'N' then send 'Yes';else do;print 'No.';call MAIN;end
  1283. call mailmessage;print 'Sent.';call MAIN
  1284.  
  1285. USERLIST:
  1286. cls;print ' Users currently playing Hacker:';print
  1287. call open file, (play'ALIASES'), 'R'
  1288. do i = 1 to TOTALUSERS
  1289.    tempa = readln(file);tempb = readln(file);temp=i'.'
  1290.    if access ~=23 then lala='';else lala='('tempb')'
  1291.    print ''left(temp,3)' 'tempa'  'lala
  1292. end
  1293. call close file
  1294. print;prompt 20 'NORMAL' ''RETURN
  1295. bg=1;call top
  1296. RETURN
  1297.  
  1298. YOURSTATS:
  1299. TEX = left(xrp,20);TMO = left(MONEY,10);TDT = left(drty,10)
  1300. TTT = left(ttyp,10);TST = left(MEGS,10);TSC = left(SCA,10)
  1301. TBW = left(BW,10);TTR = left(TROJ,10);UTR = left(TROJUSED,10)
  1302. UBW = left(BWUSED,10);USC = left(SCAUSED,10);UMK = left(MKUSED,10)
  1303. TMK = left(MK,10);TLN = left(LEVNAME,25);tlv = left(LEVEL,10)
  1304. cls;print;print 'Stats for 'name',    Alias "'alias'":';print
  1305. print '    Money: $'TMO'   Experience: 'TEX
  1306. print '    Level: 'tlv'    Level Name: 'TLN
  1307. print 'Drivetype: 'TDT'      Terminal: 'TTT
  1308. print '  Storage: 'TST'MB Lost/Crashed: 'megslost'/'totmgcr
  1309. print;print '    Virus Statistics:';print
  1310. print '           SCAs: 'TSC'   Used: 'USC
  1311. print '  Byte Warriors: 'TBW'   Used: 'UBW
  1312. print '        Trojans: 'TTR'   Used: 'UTR
  1313. print 'Memory  Killers: 'TMK'   Used: 'UMK
  1314. print;prompt 20 'NORMAL' ''RETURN
  1315. LFI = left(LASTFIGHT,20);TPL = left(TOTALPLAYS,20);TWI = left(TOTALWINS,20)
  1316. TLO = left(TOTALLOSS,20)
  1317. cls;print '   WIN/LOSS/PLAY Statistics:';print
  1318. print '      Total Plays: 'TPL
  1319. print '       Total Wins: 'TWI
  1320. print '     Total Losses: 'TLO;print
  1321. prompt 20 'NORMAL' RETURN
  1322. RETURN
  1323.  
  1324.  
  1325. RndC: /* Random Color Generator */
  1326. color = random(1,7,time('s'));send ''
  1327. RETURN
  1328.  
  1329. SPY:
  1330. cls;print 'Spy on another user:';print;txt='Spy on';call listusers
  1331. call NC;if toget='###' then call main;call open file, (play''toget), 'R'
  1332. call readostats;call close file
  1333. call OCONVERSION2
  1334. print;print 'It will cost you $'OLEVEL*100' to spy on that person.'
  1335. costtospy = OLEVEL *100
  1336. if money < costtospy then do
  1337.    print;print 'You do not have enough money!';print
  1338.    prompt 20 'NORMAL' RETURN;call MAIN
  1339. end
  1340. send 'Spy on him? (y/N) ';getchar;SPYANS = result
  1341. call NC;if spyans ~= 'Y' then call main
  1342. OTEX = left(oxper,20);OTMO = left(OMONEY,10);OTDT = left(odrtyp,10)
  1343. OTST = left(OMEGS,10);OTML = left(omlst,10);OTSC = left(OSCA,10);OTBW = left(OBW,10)
  1344. OUBW = left(OBWUSED,10);OUSC = left(OSCAUSED,10);OTMK = left(OMK,10)
  1345. Otlv = left(OLEVEL,10)
  1346. cls;print 'Stats for 'Oalias':'
  1347. print '    Money: $'OTMO'   Experience: 'Oxper
  1348. print '    Level: 'Otlv'    Level Name: 'Olevname
  1349. print 'Drivetype: 'OTDT'      Terminal: 'Ottyp
  1350. print '  Storage: 'OTST'     Megs lost: 'OTML' Megs Crashed: 'Otmcr
  1351. print '     SCAs: 'OTSC' Byte Warriors: 'OTBW'      Trojans: 'otroj
  1352. print 'SCAs used: 'OUSC'      BWs Used: 'OUBW' Trojans Used: 'otrojused
  1353. print ' Mem Kill: 'OTMK'      MKs Used: 'Omkused;print
  1354. print '  Win/Loss/Play Statistics:';print
  1355. print ' Total Plays: 'Otpl
  1356. print '  Total Wins: 'Otwin
  1357. print 'Total Losses: 'OTloss
  1358. print '   Last Play: 'Odate
  1359. print
  1360. prompt 20 'NORMAL' RETURN
  1361. money = money - olevel*200
  1362. stor=alias;alias='Hacker v4.5';line.1=stor' Spied on you!';line.2='';line.3=''
  1363. call mailmessage;alias=stor;call MAIN
  1364.  
  1365. TOP:
  1366. if bg = 1 then print;print 'Sorting players...'
  1367. call open file, (play'REALNAMES'), 'R'
  1368.      do i = 1 to TOTALUSERS
  1369.         REALname.i = readln(file)
  1370.      end
  1371. call close file
  1372.  
  1373. do i = 1 to totalusers
  1374.    call open file, (play''REALNAME.i), 'R'
  1375.    OALIAS.i = readln(file);OMONEY.i = readln(file)
  1376.    OMEGS.i = readln(file);OSCA.i = readln(file)
  1377.    OBW.i = readln(file);OTROJ.i = readln(file)
  1378.    odrtyp.i = readln(file);ottyp.i = readln(file)
  1379.    oxper.i = readln(file);olfght.i = readln(file)
  1380.    ODATE.i = readln(file);otpl.i = readln(file)
  1381.    otmcr.i = readln(file);otwin.i = readln(file)
  1382.    otloss.i = readln(file);omlst.i = readln(file)
  1383.    OBWUSED.i = readln(file);OTROJUSED.i = readln(file)
  1384.    OSCAUSED.i = readln(file);OMKUSED.i = readln(file)
  1385.    OMK.i = readln(file);call close file
  1386. END
  1387.  
  1388. n = totalusers-1;o = totalusers-1
  1389. do i = 1 to n
  1390.    do j = 1 to o
  1391.       q = j + 1
  1392.       if oxper.q > oxper.j then do
  1393.          temp = oxper.j;tempname = OALIAS.j
  1394.          oxper.j = oxper.q;OALIAS.j = OALIAS.q;oxper.q = temp;OALIAS.q = tempname
  1395.       end
  1396.    end
  1397. end
  1398. call open nfile, (play''Top15), 'W'
  1399. call writeln nfile,''
  1400. call writeln nfile,'Top 15 Hackers:'
  1401. call writeln nfile,''
  1402. call writeln nfile,'  #   Alias                    Experience     Level'
  1403. toloop = 15
  1404. if totalusers < toloop then toloop = totalusers
  1405. DO I = 1 to toloop
  1406.    call OCONVERSION;OALIAS = left(OALIAS.i,25)
  1407.    OEXP = left(oxper.i,15);OLEVNAME = left(OLEVNAME,30);temp=i'.'
  1408.    call writeln nfile,'  'left(temp,3)' 'OALIAS''OEXP''OLEVNAME
  1409. end
  1410. call close nfile
  1411. if bg = 1 then do; sendfile play''top15
  1412. print;prompt 20 'NORMAL' RETURN;end
  1413. bg = 0
  1414. return
  1415.  
  1416. BANK:
  1417. pmo = left(money,23);psa = left(savings,22);bmo = left(bankmoney,20)
  1418. cls;print '  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
  1419. print '  ³    Pocket Money            Savings Account        Bank Money           ³'
  1420. print '  ³    $'pmo'$'psa'$'bmo'³'
  1421. print '  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'
  1422. sendfile misc'sys.bank'
  1423. send '-> ';getchar;ans=result;if ans='#' then call quickexit
  1424. if ans = 'E' then do;print 'Exit';call MAIN;end
  1425. if ans = 'D' then do
  1426.    if money <=0 then do
  1427.       print 'Deposit';print;print 'You are holding no money!';print
  1428.       prompt 20 'NORMAL' RETURN
  1429.       call MAIN
  1430.    end
  1431. prompt 20 'NORMAL' 'Desposit.';print;print 'Deposit how much (Q=Quit)?   $'
  1432. ans = result;call NC
  1433. if ans > money then do
  1434.    print;print 'You do not have that much!';print;prompt 20 'NORMAL' RETURN;call MAIN
  1435. end
  1436. if ans = '' then call MAIN
  1437. money = money - ans;savings = savings + ans
  1438. call open file, (BNK''NAME), 'W';call writeln file, SAVINGS;call close file
  1439. print;print '$'ANS' deposited.  You now have $'SAVINGS' in your savings account, and $'money
  1440. print 'in your pocket.';print;prompt 20 'NORMAL' RETURN;call MAIN
  1441. end
  1442.  
  1443. if ans = 'W' then do
  1444. if ~exists(BNK''NAME) then do
  1445. print 'Withdraw.';print;print 'You have no Savings Account.';print
  1446. prompt 20 'NORMAL' RETURN;call MAIN;end
  1447. prompt 20 'NORMAL' 'Withdraw.';print;print 'Withdraw how much (Q=Quit)?   $'
  1448. ANS = result;call NC
  1449. if ans = '' | ans = 'Q' | ans = 'q' then call MAIN;if ans > savings then do
  1450. print;print 'Not enough in account.';print;prompt 20 'NORMAL' RETURN;call MAIN;end
  1451. money = money + ans;savings = savings - ans
  1452. call open file, (BNK''NAME), 'W';call writeln file, SAVINGS;call close file
  1453. print;print '$'ans' withdrawn.  You now have $'money'.';print
  1454. prompt 20 'NORMAL' RETURN;call MAIN;end;call MAIN;end
  1455.  
  1456. NC:
  1457. GETCARRIER;carrier = result;if carrier=='FALSE' then call bexit
  1458. if maincounter >= MAXTURNS then do
  1459. print;print 'You are out of turns for this call.  Try tomorrow.';print
  1460. prompt 20 'NORMAL' RETURN;call BEXIT;end
  1461. if storage() < minbyte then do;print;print 'Memory running low! Exiting game..'
  1462. sysoplog 'Hacker 4.5 ran low on memory!';call bexit2;end;return
  1463.  
  1464. BEXIT:
  1465. print 'Process 4 ending';print 'endcli';print;print 'Saving your stats..'
  1466. call top
  1467. BEXIT2:
  1468. call open file, (BNK'MONBANK'), 'W';call writeln file, BANKMONEY;call close file
  1469. TOTALPLAYS = TOTALPLAYS + 1
  1470. logentry ''name' played Hacker v4.5'
  1471. call open file, (play''NAME), 'W'
  1472. call savestats;call close file;bufferflush
  1473. print;print;print 'Hacker v4.0 - Originaly by Patrick Baker, modified by The Brazilian'
  1474. print 'Hacker v4.5 - Modified by Diamond Back for the FLIPSIDE (305)596-6711'
  1475. print 'Converted for Cyberlink by Instigist. Snakes Pit (310)863-3754!' 
  1476. exit
  1477.  
  1478.  
  1479. TERMCOST:    /* Used to determine how much terminals cost */
  1480. if ans = 2 then cost = 1000;if ans = 3 then cost = 10000
  1481. if ans = 4 then cost = 50000;if ans = 5 then cost = 100000
  1482. if ans = 6 then cost = 200000;if ans = 7 then cost = 500000
  1483. if ans = 8 then cost = 1000000;if ans = 9 then cost = 200000
  1484. return
  1485.  
  1486. HARDCOST:    /* Used to determine how much hardware costs */
  1487. if ans = 2 then cost = 1000;if ans = 3 then cost = 10000
  1488. if ans = 4 then cost = 50000;if ans = 5 then cost = 100000
  1489. if ans = 6 then cost = 150000;if ans = 7 then cost = 200000
  1490. return
  1491.  
  1492. READSTATS:
  1493. ALIAS = readln(file);MONEY = readln(file);MEGS = readln(file)
  1494. SCA = readln(file);BW = readln(file);TROJ = readln(file);drty = readln(file)
  1495. ttyp = readln(file);xrp = readln(file);LASTFIGHT = readln(file);DATE = readln(file)
  1496. TOTALPLAYS = readln(file);totmgcr = readln(file);TOTALWINS = readln(file)
  1497. TOTALLOSS = readln(file);MEGSLOST = readln(file);BWUSED = readln(file)
  1498. TROJUSED = readln(file);SCAUSED = readln(file);MKUSED = readln(file)
  1499. MK = readln(file);LASTDPLAYED = readln(file);MAINCOUNTER = readln(file)
  1500. WD = readln(file)
  1501. return
  1502.  
  1503. SAVESTATS:
  1504. call writeln file,ALIAS;call writeln file,MONEY
  1505. call writeln file,MEGS;call writeln file,SCA;call writeln file,BW
  1506. call writeln file,TROJ;call writeln file,drty;call writeln file,ttyp
  1507. call writeln file,xrp;call writeln file,LASTFIGHT;call writeln file,NEWDATE
  1508. call writeln file,TOTALPLAYS;call writeln file,totmgcr;call writeln file,TOTALWINS
  1509. call writeln file,TOTALLOSS;call writeln file,MEGSLOST;call writeln file,BWUSED
  1510. call writeln file,TROJUSED;call writeln file,SCAUSED;call writeln file,MKUSED
  1511. call writeln file,MK; call writeln file,DATEONLY; call writeln file,MAINCOUNTER
  1512. call writeln file,WD
  1513. return
  1514.  
  1515. SAVEOSTATS:
  1516. call writeln file, OALIAS;call writeln file, OMONEY;call writeln file, OMEGS
  1517. call writeln file, OSCA;call writeln file, OBW;call writeln file, OTROJ
  1518. call writeln file, odrtyp;call writeln file, ottyp;call writeln file, oxper
  1519. call writeln file, olfght;call writeln file, ODATE;call writeln file, otpl
  1520. call writeln file, otmcr;call writeln file, otwin;call writeln file, otloss
  1521. call writeln file, omlst;call writeln file, OBWUSED;call writeln file, OTROJUSED
  1522. call writeln file, OSCAUSED;call writeln file, OMKUSED;call writeln file, OMK
  1523. call writeln file, OLASTDPLAYED; call writeln file, OMAINCOUNTER;
  1524. call writeln file, OWD
  1525. return
  1526.  
  1527. READOSTATS:
  1528. OALIAS = readln(file);OMONEY = readln(file);OMEGS = readln(file)
  1529. OSCA = readln(file);OBW = readln(file);OTROJ = readln(file)
  1530. odrtyp = readln(file);ottyp = readln(file);oxper = readln(file)
  1531. olfght = readln(file);ODATE = readln(file);otpl = readln(file)
  1532. otmcr = readln(file);otwin = readln(file);otloss = readln(file)
  1533. omlst = readln(file);OBWUSED = readln(file);OTROJUSED = readln(file)
  1534. OSCAUSED = readln(file);OMKUSED = readln(file);OMK = readln(file)
  1535. OLASTDPLAYED = readln(file); OMAINCOUNTER = readln(file)
  1536. OWD = readln(file)
  1537. return
  1538.  
  1539. MAILMESSAGE:
  1540. if ~exists(mess''toget) then do;call open file, (mess''toget), 'W'
  1541. call writeln file, '0';call close file;end
  1542. call open file, (MESS''toget), 'R'
  1543. newflag = readln(file)
  1544. do i = 1 to newflag;do x = 1 to 4;dat.i.x=readln(file);end;end;call close file
  1545. call open file, (mess''toget), 'W'
  1546. newflag=newflag+1;call writeln file, newflag
  1547. do i = 1 to newflag-1;do x = 1 to 4;call writeln file, dat.i.x;end;end
  1548. call writeln file, alias
  1549. do i = 1 to 3;call writeln file, line.i;end;call close file
  1550. return
  1551.  
  1552. TOPTENSAVE:
  1553. if ~exists(play'last10') then do;call open file, (play'last10'),'W'
  1554. do i = 1 to 10;call writeln file, ' ---- ';end;call close file;end
  1555. call open file, (play'last10'), 'R';do i = 1 to 10;temp.i=readln(file);end
  1556. call close file;call open file, (play'last10'), 'W';call writeln file, txt
  1557. do i = 1 to 9;call writeln file, temp.i;end;call close file;return
  1558.  
  1559. LISTUSERS:
  1560. call open file, (play'Aliases'), 'R';flag=0;do i=1 to totalusers
  1561. tempa.i=readln(file);tempb.i=readln(file);flag=flag+1
  1562. if flag=2 then do;print ''left(i,2)'. 'tempa.i;flag=0;end
  1563. else send ''left(i,2)'. 'left(tempa.i,35);end
  1564. if flag=1 then print;call close file
  1565. print;send ''txt' whom? (Q=Quit) : '
  1566. bufferflush;if totalusers >= 10 then do;getchar;ja=result;send ja
  1567. getchar;jaja=result;send ''
  1568. if c2d(jaja)=13 then ans=ja;else ans=ja||jaja;end;else do;getchar;ans=result;end
  1569. if ans='Q' then do;print 'Aborted.';toget='###';return;end
  1570. if tempa.ans=alias then do;print 'Thats you!';toget='###';return;end
  1571. if ans > totalusers | ans <= 0 then do;print 'Invalid user.';toget='###';return;end
  1572. print tempa.ans;toget=tempb.ans;return
  1573.  
  1574.  
  1575. QUICKEXIT:
  1576. bufferflush
  1577. exit
  1578.  
  1579. ERROR:
  1580. print;print 'An error has occured in the game.. Exiting..'
  1581. sysoplog 'Error in Hacker, line 'sigl'.. Please contact'
  1582. sysoplog 'Diamond Back at (305)595-6711, data.'
  1583. exit
  1584.  
  1585. SYNTAX:
  1586. print;print 'An error has occured in the game.. Exiting..'
  1587. logentry 'Syntax error in Hacker, line 'sigl'.. Please contact'
  1588. logentry 'Diamond Back at (305)596-6711, data.'
  1589. exit
  1590.  
  1591. IOERR:
  1592. print;print 'An error has occured in the game.. Exiting..'
  1593. logentry 'I/O Error in Hacker, line 'sigl'.. Please contact'
  1594. logentry 'Diamond Back at (305)596-6711, data.'
  1595. exit
  1596.  
  1597. HALT:
  1598. print;print 'ARexx HALT issued by the sysop - Shutting down..'
  1599. call bexit2
  1600.  
  1601. TURNS:
  1602.   MAINCOUNTER=MAINCOUNTER+1
  1603.   If MAINCOUNTER > MAXTURNS then do
  1604.     print;print "You're out of turns for today!';print 'Try again tommorow!";print
  1605.     prompt 20 'NORMAL' RETURN
  1606.     call BEXIT
  1607.   end
  1608. return
  1609. GETDATE:
  1610.   DateOnly=right(DATE,18)
  1611.   DateOnly=left(DateOnly,11)
  1612. return
  1613. CHECKLPLAY:
  1614.   If Access = 23 Then do; MainCounter = 0; return; end
  1615.   If DATEONLY ~= LASTDPLAYED then do;Maincounter=0;return;end
  1616.   If Maincounter > Maxturns then do;cls;print 'Sorry, you have used up all your turns for today.Try again tommorrow.';print;print
  1617.   call QUICKEXIT;end
  1618. return
  1619. AddNumbers:
  1620.   if access ~= 23 then call dial
  1621.   print cls
  1622.   sendfile misc||'AddNumber.Menu'
  1623.   send 'Enter Number: ';getchar
  1624.   ans=upper(result);print ans
  1625.   call nc
  1626.   if ans = 'Q' then call dial
  1627.    else if ans = '1' then numfile = 'local'
  1628.    else if ans = '2' then numfile = 'mainframe'
  1629.    else if ans = '3' then numfile = 'gov'
  1630.    else if ans = '4' then numfile = 'war'
  1631.    else call addnumbers
  1632.   if ~exists(phones''numfile) then do
  1633.     open nfile,(phones''numfile), 'W'
  1634.     writeln nfile,'1'
  1635.     mnx=1
  1636.   end
  1637.   else do
  1638.     call open nfile, (phones''numfile), 'R'
  1639.     telnum=readln(nfile)
  1640.     do i=1 to telnum
  1641.       locnm.i=readln(nfile)
  1642.       localnum.i=readln(nfile)
  1643.       locmg.i=readln(nfile)
  1644.       locwin.i=readln(nfile)
  1645.       locloss.i=readln(nfile)
  1646.     end
  1647.     call close nfile
  1648.     call open nfile, (phones''numfile), 'W'
  1649.     telnum=telnum+1
  1650.     call writeln nfile, telnum
  1651.   end
  1652.   print CLS
  1653.   prompt 20 'NORMAL' 'Enter the name: '
  1654.   locnm.telnum=result
  1655.   call nc
  1656.   prompt 20 'NORMAL' 'Enter the number: '
  1657.   localnum.telnum=result
  1658.   call nc
  1659.   prompt 20 'NORMAL' 'Enter the storage in Megs: '
  1660.   locmg.telnum=result
  1661.   call nc
  1662.   locwin.telnum=0
  1663.   locloss.telnum=0
  1664.   do i=1 to telnum
  1665.      call writeln nfile,locnm.i
  1666.      call writeln nfile,localnum.i
  1667.      call writeln nfile,locmg.i
  1668.      call writeln nfile,locwin.i
  1669.      call writeln nfile,locloss.i
  1670.   end
  1671.   call close nfile
  1672. call dial
  1673. WARDIAL:
  1674.   print CLS
  1675.   If WD=1 then do
  1676.     print 'WarDialer is already running!'
  1677.     return
  1678.   end
  1679.   sendfile misc'wardial.txt'
  1680.   print;send 'Run wardialer? '
  1681.   getchar
  1682.   ans=upper(result)
  1683.   if ans ~= 'Y' then return
  1684.   print 'Yes'
  1685.   if money<10000 then do
  1686.     print 'You can''t afford it.'
  1687.     return
  1688.   end
  1689.   wd=1
  1690.   if access ~= 23 then money=money-10000
  1691.   print;print;print 'Wardialer should have results ready by tommorrow.'
  1692.   print 'Thank you for using Global WarDialer v1.0'
  1693.   call turns
  1694. return
  1695. CHECKWARDIAL:
  1696.   If (WD ~= 1) | ((Access ~= 23) & (Dateonly = LastDPlayed)) then return
  1697.   cls;print 'Checking WarDialer Results...'
  1698.   call open file, (phones''war), 'R'
  1699.   wnum=readln(file)
  1700.   do i=1 to wnum
  1701.     locnm.i=readln(file)
  1702.     localnum.i=readln(file)
  1703.     locmg.i=readln(file)
  1704.     locwin.i=readln(file)
  1705.     locloss.i=readln(file)
  1706.   end
  1707.   call close file
  1708.   call open file, (phones''HAA), 'R'
  1709.     blah=readln(file)
  1710.     locnm.0=readln(file)
  1711.     localnum.0=readln(file)
  1712.     locmg.0=readln(file)
  1713.   call close file
  1714.   do
  1715.   wfnd=random(0,wnum%8, time('s'))
  1716.   If wfnd = 0 then do
  1717.     print;print 'You found no numbers this time!'
  1718.     wd=0
  1719.     return
  1720.   end
  1721.   do i=1 to wfnd
  1722.     fndw=random(0,(wnum+2),time('s'))
  1723.     if fndw=wnum+1 || fndw=wnum+2 then fndw=0
  1724.     do j=1 to i-1
  1725.       if fndw=wn.j then i=i-1
  1726.     end
  1727.     wn.i=fndw
  1728.   end
  1729.   print;print 'You found these numbers...  Write them down!'
  1730.   do i=1 to wfnd
  1731.     k=wn.i
  1732.     print 'Name:['||locnm.k'] Phone Number:['||localnum.k'] Storage:['||locmg.k' Megs]'
  1733.   end
  1734.   print;print 'Hit Any Key to Continue '
  1735.   getchar
  1736.   WD=0
  1737. return
  1738. GENERATEHAA:
  1739. call open file, (phones'HAA'), 'W'
  1740. call writeln file,'1'
  1741. call writeln file,'Hackers Assoc. of America'
  1742. do i=1 to 7;n.i=random(0,9,time('s'));end
  1743. call writeln file,'619'||n.1||n.2||n.3||n.4||n.5||n.6||n.7
  1744. call writeln file,'999';call writeln file,'0';call writeln file,'0'
  1745. call close file
  1746. do i=1 to 7;drop n.i;end
  1747. return
  1748. WINGAME:
  1749. logentry '-=>' REALNAME' won Hacker4.5!!! <=-'
  1750. if exists(misc'sys.win') then sendfile misc||'sys.win'
  1751. if ~exists(misc'winners') then do
  1752.   call open file, (misc'winners'), 'W'
  1753.   call writeln file,'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-='
  1754.   call writeln file,'- The Legendary Hacker Hall of Fame -'
  1755.   call writeln file,'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-='
  1756.   call writeln file,''
  1757. end
  1758. Else call open file,(misc'winners'), 'A'
  1759. call Writeln File, 'Name:'||Alias' EXP:'||xrp' Date:'||dateonly
  1760. call close file
  1761. print ''
  1762. call generatehaa
  1763. address command 'delete' play'#?'
  1764. address command 'delete' mess'#?'
  1765. address command 'delete' bnk'#?'
  1766. call quickexit
  1767. return
  1768. SCAN:
  1769. j=0;sendfile misc'sys.scanner'
  1770. send 'Do you wish to do a fight scan? '
  1771. getchar;ans=upper(result)
  1772. if ans ~= 'Y' then return
  1773. print 'Yes';print
  1774. if (money < 15000) & (access ~= 23) then do;print;print 'You can not afford it!';print;return;end
  1775. if access ~= 23 then money=money-15000
  1776. call open file, (play'Aliases'), 'R'
  1777. do i=1 to totalusers
  1778.   tempa=readln(file);tempb=readln(file)
  1779.   call open nfile, (play''tempb), 'R'
  1780.   oalias=readln(nfile);omoney=readln(nfile);omegs=readln(nfile)
  1781.   if (omegs > 0) & (oalias ~= alias) then do;j=j+1;print ''||j')' oalias;end
  1782.   call close nfile
  1783. end
  1784. call close file
  1785. if j=0 then print 'Everyone is trashed!';print
  1786. else print 'End of scan.';print
  1787. return
  1788.  
  1789.